The present invention relates in general to the field of automated testing, and more specifically to a system and method for automated testing of electronic devices.
Product development is an ongoing process in most industries. In the current climate of rapidly advancing technology, many of these industries are pouring more and more resources into the development of new products. The goal, however, is not merely to develop new products, but rather, to develop better products. As such, organizations involved in product development subject the developmental products to a barrage of tests. In many cases, these tests are repetitively performed to ensure the durability of the developmental product.
As much as any other industry, the electronics industry is committed to the thorough testing of new products. Unfortunately, testing products with embedded microprocessor chips presents unique challenges. Aside from testing the durability of the product, a developer must debug the embedded software. The debugging process is especially difficult when the product is a man-machine interface (MMI) product, a product with an intended use involving man-machine interfaces.
To test the embedded software of MMI products (e.g., telephones, keyboards, etc.), the product developer must simulate the interfaces of man and machine. With regard to a telephone, for example, the developmental product may need to be manipulated in any number of ways. Each of the simulated manipulations emulates the manipulations the developmental product is likely to encounter when generally available. Moreover, these many manipulations need to be repetitively performed.
There are two types of conventional testing methods for MMI products: manual testing and automated testing. Manual testing requires an individual to manipulate a to-be-tested product and to compare its response to the desired design response. The individual performs the test repetitively. While the manual testing method allows a product development group considerable flexibility when altering the manipulations and responses to be tested, the manual approach to testing is expensive, unreliable and an inefficient use of human resources.
The conventional alternative to manual testing is automated testing with a specifically developed and manually written software program. While the automated testing is usually more reliable than the manual testing, it is not always less expensive. The programming costs associated with the development of an automated testing program are substantial. The software""s programmer must be trained in the programming language and must be familiar with the language""s syntax requirements. Moreover, if the product development group desires a new test or series of tests, the programmer must write a second program. The cost of preparing the second automated test program may be as high, if not higher, than the cost of preparing the first program.
In accordance with the present invention, a system and method are disclosed for automated testing of electronic devices. The system and method disclosed provide advantages over previously developed testing systems.
According to one aspect of the present invention, a system is provided for automated testing of an electronic device. Within the system is a test recorder which can be coupled to a model product via a communication link. The test recorder generates a test record of an original test while the original test is performed. The test record includes a manipulation entry representing an original manipulation signal and a model response entry representing an original response signal. The system also includes a test analyzer that can play the manipulation entry of the test record. The test analyzer can be coupled to a to-be-tested product via a test link. When coupled, the test analyzer can play the manipulation entry of the test record such that the to-be-tested product receives a test signal that simulates on the to-be-tested product the original manipulation signal of the original test. This simulation causes the to-be-tested product to respond, and the test response signal generated by this response is communicated back to the test analyzer. The test analyzer then compares the test response signal against the model response entry and identifies a test response that differs from the model response entry.
In one particular embodiment, the model product, upon which the original manipulations are performed, is a virtual product. Using LabView, or some other visual programming language, a virtual product is generated that replicates the developmental product. A user interface then allows a user to manipulate the virtual product as if it were an actual product. Again, the manipulation signals and the response signals are recorded by the test recorder. A virtual product may also be used in conjunction with a model product. That is to say, a user could manipulate an actual model product, which is connected to the user interface, by manipulating the virtual product. The virtual manipulation would generate the to-be-recorded manipulation signal which would be sent to the model product. In response to the manipulation signal, the model product would generate the to-be-recorded response signal.
In another embodiment, the test recorder records the test record as a text document script file. Once recorded, the test recorder may allow a user to edit the test record. An embodiment of the present system may also allow one recorded a script file to call another recorded script file. To facilitate this calling feature, a script file hierarchy may be employed.
In a further embodiment, the model product and the to-be-tested product may be cordless telephones or mobile units. In this embodiment, the test link may include an RS232 to I2C converter, and the original test may include the leaving of a voice mail message using a coded series of dual tone multiple frequency (DTMF) tones.
In each of the above-discussed embodiments, the test analyzer may be operable to automatically repeat a test and record a plurality of additional time. This operability allows a product development group to repetitively test a product with minimal oversight. The test analyzer may also allow a user to control the playing of the record. For example, the user may have the test analyzer stop or pause play each time it identifies a test response signal that differs from a model product response signal.
In addition, the test link may be operable to allow a user to couple the test analyzer to a plurality of to-be-tested products such that a single test analyzer may test a plurality of products with each playing of the test record. To facilitate this multiple coupling capacity, the system can employ an independent driver capable of managing multiple tasks. The driver""s responsibilities would include handling data flow between the test analyzer and the to-be-tested products. To facilitate the data handling, the driver could employ a two-dimensional array with a row for each to-be-tested product and columns for various signal data. The two-dimensional array could also include an additional column for handshakes. As such, the driver would be operable to manage the recording of manipulation and response signals. The driver, when polling through the array, would read the handshake column of a given row and determine whether or not the signal of the to-be-tested product corresponding to the given row was to be recorded. By using the handshake column, the system knows if the driver is busy or if it is ready for the next recording. The driver might also employ a second array of one dimension. Again, the rows could represent the to-be-tested products. The driver could use this second array when the system seeks to simulate the manipulation of a to-be-tested product. As the driver polls through the array, the driver will send the manipulation signal referenced in a polled field. Once the signal has been sent, the field is labeled as empty, and the driver continues polling. In so doing, a handshake is performed in the referencing field.
A technical advantage of the present invention is the reduction of human time costs. Whereas before a person would physically manipulate a single product and compare its response to the model response, the automated testing system can test a plurality of products at one time without human oversight. Even when compared against conventional automated testing, the present automated testing system represents significant time savings. Physically performing an original product test once generates the test record of the present invention. As such, the need for experienced programmers disappears, as does the time associated with writing the testing program. Moreover, if a product development group decides to run additional or different tests on a to-be-tested product, the time required to prepare the second test record is little more than the time required to run the new test, because running the new test on a model product generates the test record needed to test the to-be-tested products.
Another technical advantage of the present invention is improved testing reliability. The ease and speed of preparing the test record of the present automated test system allows product development groups to use automated testing in place of manual testing. In the past, automated testing was used sparingly, because of the costs associated with writing the test program. As a result, manual testing is the most common form of testing. Unfortunately, manual testing is not always as reliable as automated testing. The present invention makes automated testing easy enough and inexpensive enough to supplant much of the manual testing being employed today. This, in turn, may help improve the reliability of developmental product testing. It may also help reduce the significant costs associated with developmental product testing.
Though much of this summary references developmental products, the automated testing system would allow for compliance testing of production products. Additional technical advantages should be readily apparent from the drawings and description.